A service/application (referred to hereinafter as a service) is a program that typically runs on a single host in isolation. Examples of such a service may include a file transfer protocol (FTP) service, a Tomcat™ service, a web service, and an audio/video streaming service. By use of the system disclosed herein, such individual services may be run on multiple hosts in a distributed computing environment. In the context of a distributed computing environment, such services are considered to be transportable in that they may be run on multiple hosts and/or migrated from one host to another.
Prior art service controller systems are known, such as the “init” service on the UNIX™ operating system and the “Service Control Manager” on Microsoft™ Windows™. However, these prior art service controllers are limited to a single host environment and have no application in distributed computing environments. Also known are high availability managers such as Veritas Cluster Server™; however these are static, are not transportable and do not scale, and thus do not provide for multiple service instances. Also known are commercial database products, such as those from Oracle™, and MySQL, which provide for guaranteed failover.